package com.gccloud.design.service;


import com.gccloud.design.dto.SdFormActionConfDto;
import com.gccloud.design.dto.SdFormConfigDto;
import com.gccloud.design.entity.SdFormActionConfEntity;

import java.util.List;

/**
 * @author wu.yumin
 * @version 1.0.0
 * @Description 表单操作配置service
 * @date 2021/6/23 10:10
 */
public interface SdFormConfigService {
    /**
     * 查询表单操作配置列表
     *
     * @param formId 表单标识
     * @return 列表
     */
    List<SdFormActionConfDto> queryActionsByFormId(Long formId);

    /**
     * 新增表单操作配置
     *
     * @param list 表单操作配置列表
     * @return boolean
     */
    boolean saveFormAction(List<SdFormActionConfEntity> list);

    /**
     * 移除表单操作配置
     *
     * @param formId   表单标识
     * @param actionId 操作标识
     * @return boolean
     */
    boolean delFormAction(Long formId, Long actionId);

    /**
     * 更新操作配置（排序）
     *
     * @param list 列表
     * @return boolean
     */
    boolean updateFormAction(List<SdFormActionConfEntity> list);

    /**
     * 表单环节绑定
     *
     * @param dto 表单配置
     * @return boolean
     */
    boolean formRepoBind(SdFormConfigDto dto);

    /**
     * 根据表单id查询表单环节绑定信息
     *
     * @param formId 表单id
     * @return 表单配置dto
     */
    SdFormConfigDto queryFormRepoInfo(Long formId);

    /**
     * 表单绑定环节修改
     *
     * @param dto 表单配置dto
     * @return boolean
     */
    boolean updateFormRepoBind(SdFormConfigDto dto);

    /**
     * 删除环节
     *
     * @param repoId 环节定义id
     * @return boolean
     */
    boolean deleteRepoBind(String repoId);
}
